package com.bonuo.crm.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Project extends BaseEntity {
    /** 项目信息ID */
    private Integer id;
    /** 联系人ID */
    private Integer contactId;
    /** 决策人ID */
    private Integer decisionId;
    /** 代理商ID */
    private Integer agentId;
    /** 财年 */
    private Integer year;
    /** 类型 */
    private String type;
    /** 项目名称 */
    private String name;
    /** 项目编号 */
    private String projectNo;
    /** 预算金额 */
    private BigDecimal amount;
    /** 中标金额 */
    private BigDecimal bidAmount;
    /** 开票金额 */
    private BigDecimal invoiceAmount;
    /** 未开票金额 */
    private BigDecimal unInvoiceAmount;
    /** 累计回款金额 */
    private BigDecimal receivedAmount;
    /** 未回款金额 */
    private BigDecimal unReceivedAmount;
    /** 进度 */
    private Long schedule;
    /** 代理商名称 */
    private String agentName;
    /** 客户名称 */
    private String clientName;
    /** 院系名称 */
    private String facultyName;
    /** 联系人职务 */
    private String contactJob;
    /** 联系人名称 */
    private String contactName;
    /** 联系人电话 */
    private String contactPhone;
    /** 决策人职务 */
    private String decisionJob;
    /** 决策人名称 */
    private String decisionName;
    /** 决策人电话 */
    private String decisionPhone;

    @Excel(name = "项目日期",dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date nowDate;

    @Excel(name = "合同签订日期",dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date signDate;

    @Excel(name = "交付日期",dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date deliveryDate;

    @Excel(name = "质保日期",dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date guaranteeDate;

    private Date startDate;
    private Date endDate;
    /** 是否算销售业绩 0算 1不算 */
    private Integer isPerformance;
    /** 所属公司 */
    private String belongCompany;
    /** 合同文件路径 */
    private String certification;
    /** 中标通知书 */
    private String bidCertification;
    /** 验收通知单 */
    private String checkCertification;
    /** 任务单 */
    private String taskCertification;


    /** 搜索条件 项目进度月份（字符串 2025-07） */
    private String month;

    private Integer delFlag;


    /** 备注 */
    @Excel(name = "备注")
    private String remark;
    /** 创建者 */
    @Excel(name = "创建人")
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime;

    /** 当前用户部门ID */
    private Integer deptId;
    /** 用户ID */
    private Integer userId;
    /** 用于接收该用户及夏季用户姓名（用户名）  */
    private List<String> childrenOrMine;


    private String province;

    private Boolean flag;

    private Integer facultyId;

    /** 排序 */
    private String sort;
}
